/********************************************
 * Matrix Class (generic)
 *******************************************/
template<int w, int h>
class Matrix
{
public:
    Matrix() {}

    unsigned char& get(int x, int y) {
        return mat[x][y];
    }

private:
    // Disallow copy operations
    Matrix(const Matrix&);
    Matrix& operator=(const Matrix&);

    unsigned char mat[h][w];
};